package com.qf.threadpool;

import java.util.concurrent.*;

public class Demo {

    public static void main(String[] args) {


        // 线程池7大核心核心参数
//        ExecutorService executorService = Executors.newFixedThreadPool(10);


        // 1.创建一个线程池
        ThreadPoolExecutor executors = new ThreadPoolExecutor(
                5, // 核心线程池,线程池中至少有5个线程
                15, // 线程池中的最大线程数量
                3,  // 空闲线程回收的时间
                TimeUnit.SECONDS, // 时间单位
                new ArrayBlockingQueue(20), // 线程池中的线程已经最大了，剩下的引用压入队列等待空闲线程
                Executors.defaultThreadFactory(),  // 创建线程的默认工厂
                new ThreadPoolExecutor.AbortPolicy() // 拒绝策略，队列的长度满了以后执行的拒绝策略
        );


        // 2.使用线程
//        executors.submit(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("启动一个线程");
//            }
//        });
        executors.submit(() -> {
            System.out.println("Demo.main");
        });
    }
}
